home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Leser 15 / Amiga Plus Leser CD 15.iso / Tools / Development / CIT.v4 / citra / CITApp.h next >
Encoding:
C/C++ Source or Header  |  2002-03-13  |  1.4 KB  |  73 lines

  1. #ifndef CIT_CITAPP_H
  2. #define CIT_CITAPP_H TRUE
  3.  
  4. //
  5. //                       CIT_App include
  6. //
  7. //                            StormC
  8. //
  9. //                        version 2002.02.02
  10. //
  11.  
  12. #include "CITLists.h"
  13.  
  14. class CITApp;
  15.  
  16. class CITAppClass:public CITNode
  17. {
  18.   public:
  19.     class CITApp *CITApp;
  20.  
  21.     CITAppClass();
  22.     ~CITAppClass();
  23.  
  24.   protected:
  25.     friend class CITApp;
  26.     
  27.     ULONG ExceptSignals;
  28.     ULONG EventSignals;
  29.  
  30.     virtual BOOL Create(class CITApp* app);
  31.     virtual void Delete();
  32.     virtual void HandleExcept(ULONG Sigs);
  33.     virtual void HandleEvent(ULONG Sigs);
  34. };
  35.  
  36.  
  37. #define MAIN_STOPMASK  (1<<0)
  38.  
  39. class CITApp
  40. {
  41.   public:
  42.     CITApp();
  43.     ~CITApp();
  44.  
  45.     void  InsObject(CITAppClass &Object,BOOL &Err);
  46.     void  RemObject(CITAppClass &Object);
  47.     ULONG Run(ULONG stopMask=MAIN_STOPMASK);
  48.     void  Stop(ULONG mask=MAIN_STOPMASK);
  49.     void  Disable();
  50.     void  Enable();
  51.     
  52.     void AddExcept(ULONG Sigs);
  53.     void RemExcept(ULONG Sigs);
  54.     void AddEvent(ULONG Sigs) { WaitSignal |= Sigs; }
  55.     void RemEvent(ULONG Sigs) { WaitSignal &= ~Sigs; }
  56.  
  57.   protected:
  58.     virtual void HandleExcept(ULONG Sigs);
  59.     virtual void HandleEvent(ULONG Sigs);
  60.     
  61.   private:
  62.     friend void HandleExceptEntry(CITApp* app,ULONG Sigs);
  63.  
  64.     class CITList* ObjectList;
  65.     ULONG ExceptSignal;
  66.     ULONG WaitSignal;
  67.     ULONG stopReq;
  68.     UWORD disableCount;
  69.     BYTE  sleepSignal;
  70. };
  71.  
  72. #endif
  73.